//package tech.cn.note.word.fun;
//
//import java.math.BigDecimal;
//import java.util.List;
//import java.util.Map;
//
//import cn.hutool.core.util.ObjectUtil;
//import com.deepoove.poi.render.compute.RenderDataCompute;
//import tech.tongyu.bct.common.util.StreamUtils;
//
//import org.springframework.stereotype.Service;
//
//import static org.springframework.util.ObjectUtils.isEmpty;
//
//@Service
//public class Sum implements RenderFunction {
//    /**
//     * @param fields            参数1：集合 List<Map<>> 参数2：key 参数3：保留位数（非必填，默认2）
//     * @param renderDataCompute
//     * @return
//     */
//    @Override
//    public String doCalculate(String[] fields, RenderDataCompute renderDataCompute) {
//        if (isEmpty(fields) || fields.length < 2) {
//            return "";
//        }
//        String listHolder = fields[0];
//        String key = fields[1];
//        int scale = fields.length == 2 || fields[2] == null ? 2 : Integer.parseInt(fields[2]);
//        List<Map<String, Object>> list = (List<Map<String, Object>>) renderDataCompute.compute(listHolder);
//        if (ObjectUtil.hasNull(list, key)) {
//            return "";
//        }
//        return StreamUtils.accumulate(list,
//                v -> v.get(key) instanceof String
//                        ? new BigDecimal(v.get(key).toString())
//                        : (BigDecimal) v.get(key))
//                .setScale(scale, BigDecimal.ROUND_HALF_UP)
//                .toString();
//    }
//}
